package com.cjm.algorithm.tanxin;

public class Ti45 {
    public int jump(int[] nums) {
        if (nums.length == 0) return 0;
        int curinstance = 0;// 当前覆盖的最远步数
        int ans = 0;//记录已经走的步数
        int nextdistance = 0;// 下一步覆盖的最远距离
        for (int i = 0; i < nums.length; i++) {
            nextdistance = Math.max(nums[i] + i, nextdistance);// 下一个可以跳到的最远的地方
            if (i == curinstance) {// 如果已经跳转到这次步数能到的最远的地方
                if (curinstance != nums.length - 1) {
                    ans++;// 步数+1
                    curinstance = nextdistance;// 更新下一次， 能跳转到最远的地方
                    if (nextdistance > nums.length - 1) {// 如果能覆盖到终点， 则结束
                        break;
                    }
                } else{
                    break;
                }
            }
        }
        return ans;
    }
}
